Implementation and uses of XsRGB

ABSTRACT

An extended colorspace which has a higher accuracy and a wider gamut than sRGB color space is disclosed. The extended color space includes an alpha channel which defines the translucency of the color image. The alpha channel is different from known alpha channels in that the inventive alpha channel can represent “super transparent” and “super opaque” values by allowing the alpha parameter (α) to be greater than 1 and less than 0. A data structure for storing the extended colorspace information has three fields, a sign field, an integer field and a decimal field. The sign field defines whether an integer is negative or positive. The integer field defines the integer, wherein the integer defines the super or under saturated values for color and alpha components. The decimal field defines the fine detailed information for the value of the color and alpha components.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional application of and claims priority fromU.S. application Ser. No. 09/631,285, filed Aug. 3, 2000, now U.S. Pat.No. 6,748,107 which claims priority to provisional application Ser. No.60/147,325, filed Aug. 5, 1999, both of which are herein incorporated byreference.

TECHNICAL FIELD

The present invention relates to colorspace interchange and moreparticularly, to a new color format that can be used for a referencecolor frame and for internal color space for image processing.

BACKGROUND OF THE INVENTION

Communication of color information between different devices andindustries has become recognized as an important issue. Each industrygenerally has its own color management history, with its own terminologystandards and methods for communicating color information. As more usersare connecting different peripheral devices made by different companiesand, in addition, communicate with one another over the Internet, it isbecoming more urgent to have a standardized color data management schemethat provides consistent color data management. Many different practicesand standards are currently being used.

Different phosphor sets are being used to provide the colors of “red”,“green”, and “blue”. For example, where a monitor may illustrate a pinkcolor, and the user selects the pink color, the printer printing theselection may print out an ugly purple/lavender. This, different valueson chromaticity diagrams represent a same color, providing confusion.Tone reproduction of various systems also differs. Also, viewingconditions may vary, causing colors to appear different to differentobservers. Thus, due to differing visual conditions, the color of theilluminant (the white point), the absolute level of the scene irradiance(generally the illuminance), the surrounding colors, etc., all affectthe color perception unless the initial and final conditions areidentical. Unless a white point and illuminance level are the same, thecolor interchange data may not be identical.

Previous color data conversion methods have required the use of cuberoot computation or raising values to the third power. To store data,every pixel had to be converted using a set of power function routines.This process is time-consuming, consumes processing power, and mayintroduce errors. Other techniques, such as is described in U.S. Pat.No. 5,224,178, by Madden et al., provide for compressing digital codevalues to provide a set of reduced range digital codes of a sameresolution, but having a smaller range of basic image content valuesthan the dynamic range of the digitized image data base.

As shown in FIG. 1 the chromaticity diagram has been developed by theCommission Internationale de l'Eclairage (CIE), or InternationalCommission on Illumination, to provide a common chromaticity value forcolors. The displayable colors by a laser device are shown as a triangleABC, with points A 102, B 104, and C 106. Ideally, color values for adevice should cover a triangle having an area that extends over theentire visible range. However, as shown in FIG. 2, the triangle coveredfor color values of a Canon CLC500 color copier/printer 202 is shownalong with the old RGB color values (Genl. RGB) 204, the first PC colormonitors and the sRGB values 206. While some of the cyan colors arelimited by sRGB, the brightest greens and reds are output devicelimited, but not sRGB limited. Clearly, calculations must be used toconvert values of the color copier/printer 202 colors to the ordinaryCRT colors (sRGB values) 206.

Although lasers have virtually monochromatic output and the primaries ofthe laser would reside on the spectrum locus of the CIE (InternationalCommission on Illumination) diagram of FIG. 1, showing 2 degree observerdata, typically devices do not have the gamut to display the lasercolorspace. Thus, data in a laser display colorspace would have to beconverted for display and printing.

Cathode display tubes (CRTs), color flat panels (both active and passivematrix types) and high definition televisions (HDTVs) providechromaticity diagrams that are similar to the CRT model shown in FIG. 2.However, the sRGB chromaticity diagram lacks a range of gamut thatincludes all colors, and conversion of sRGB color data values isnon-linear, thus often resulting in undesired results.

Advanced graphic systems require the features of anti-aliases (removingragged edges) and blending (translucency) effects. Those effects arehandled by an extra component, called the alpha channel, in addition tothe RGB components. In order to perform the anti-alias and blendingoperations correctly with the alpha channel, the linear color componentsneed to be defined in terms of their intensities. Current systems arehowever limited to the intensity values between 0 and 1, which do notprovide optimal results in some circumstances.

SUMMARY OF THE INVENTION

One aspect of the invention relates to an extended colorspace which hasa higher accuracy and a wider gamut than sRGB color space. The extendedcolor space includes an alpha channel which defines the translucency ofthe color image. The alpha channel is different from known alphachannels in that the inventive alpha channel can represent “supertransparent” and “super opaque” values by allowing the alpha parameter(α) to be greater than 1 and less than 0.

A data structure for storing image information for each component of animage is also disclosed. The data structure has three fields, a signfield, an integer field and a decimal field. The sign field defineswhether an integer is negative or positive. The integer field definesthe integer, wherein the integer defines the super or under saturatedvalues for color and alpha components. The decimal field defines thefine detailed information for the value of the color and alphacomponents.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic graphical representation of a laser displaycolorspace upon a CIE colorspace that shows the full gamut of the visualspectrum as is known in the art.

FIG. 2 is a schematic graphical representation of colorspaces for arepresentative Canon CLC500 color copier/printer, General RGB colorvalues, and sRGB values upon a CIE colorspace diagram as is known in theart.

FIG. 3 is a schematic graphical representation of a colorspace inaccordance with embodiments of the invention.

FIG. 4 is a block diagram of an apparatus in a digitized imageprocessing system for converting color images in accordance withembodiments of the invention.

FIG. 5 is a block diagram of a computer system that may be used toimplement embodiments of the invention.

FIG. 6 illustrates the alpha value as an interpolation/extrapolationparameter according to embodiments of the invention.

FIG. 7 illustrates a RGB48 color format according to embodiments of theinvention.

FIG. 8 illustrates an ARGB64 color format according to embodiments ofthe invention.

FIG. 9 illustrates a data structure for storing image information foreach color component according to embodiments of the invention.

FIGS. 10(a)-10(e) illustrate various stages of color data according toembodiments of the invention.

DETAILED DESCRIPTION

As shown in FIG. 3, extending the range of color data values for thechromaticity diagram for sRGB beyond 1.0 and below 0.0 on the x and yaxes is illustrated by the triangle DEF 302, 304, 306, so that thepresent invention provides a chromaticity diagram that encompasses allvisible color values. For example, in one embodiment, color data valuesmay be expressed in a signed 16-bit integer (13 bits are used fordecimals) with a triangle corresponding to (3.24, −0.97, 0.06), (−1.54,1.88, −0.20), and (−0.50, 0.04, 1.01), thus covering each componentwithin −4 to 4.

By allowing the component of each primary color to be negative and toextend beyond 1.0 (when normalized to 1.0 in sRGB), the presentinvention's gamut is larger than the visible color space. The datascheme of the present invention, “XsRGB”, is also known as “sRGB64.“XsRGB” will be used hereafter to represent the color data scheme ofeither XsRGB or sRGB64.

Advanced graphic systems require anti-aliasing features (removing raggededges) and blending (translucency) effects. To achieve theseanti-aliasing features and blending effects, an extra component calledan “alpha channel” was introduced. To utilize the alpha channel, thelinear color components must be expressed in terms of their intensities.However, sRGB and other color management systems typically store colordata values in non-linear 8-bit values per channel. The non-linearity isexpressed as a “gamma value”. For example, Microsoft's and Apple's colormanagement systems are 2.2 and 1.8, respectively. When only 8 bits wereavailable for color data value representation, it was necessary toconvert the color data non-linearly. Otherwise, it created a large gapin the lower intensity values and causing the resulting images to showcontours. However, when the size of each component is extended to higherbit (12 bit or higher), the non-linearity requirement is eliminated.Thus, in an embodiment with 12 or more bits for each component,component values do not have to be non-linearized, avoiding confusion ofdifferent gamma values in different color standards. When the superluminous or negative values are allowed, color profiles do not requireclipping to a narrower gamut. Since, in this embodiment, color valuesare standardized, standard images may be stored in the XsRGB formatwithout attaching a standardized profile such as an ICC (InternationalColor Consortium) profile to clarify the colors intended. Where desired,an alpha channel may be implemented to store information ontransparency. Also, where selected, the color values may bepremultiplied by alpha channel values to provide efficient blending.

It is better to define XsRGB more generally by a 4×4 matrix. Also, thereis a conversion rule for XsRGB with a different white point.

XsRGB is linear in the visual intensity of each component. Hence, XsRGBcan relate linearly to 1931 CIE XYZ values. Let R₀, G₀, and B₀ denotethe normalized red, green, and blue components, respectively. Let X, Y,and Z denote 1931 CIE XYZ values, but Y is normalized to 1 instead of100. The relationship between the normalized XsRGB and XYZ is given by a4×4 matrix. $\begin{matrix}{{\begin{pmatrix}R_{0} \\G_{0} \\B_{0} \\1\end{pmatrix} = {M\begin{pmatrix}X \\Y \\Z \\1\end{pmatrix}}},{where}} & \text{(1a)} \\{M = \begin{bmatrix}m_{RX} & m_{RY} & m_{RZ} & t_{R} \\m_{GX} & m_{GY} & m_{GZ} & t_{G} \\m_{BX} & m_{BY} & m_{BZ} & t_{B} \\0 & 0 & 0 & 1\end{bmatrix}} & \text{(1b)}\end{matrix}$Only 12 coefficients are needed to define XsRGB. In addition to therotational part (m_(RZ), etc.), the transitional part (t_(R), etc.) isused. With this notation, the white point may be addressed as well asthe black point. Using the inverse of the above matrix, the reverserelation from XsRGB to CIE XYZ space is given by: $\begin{matrix}{{\begin{pmatrix}X \\Y \\Z \\1\end{pmatrix} = {M^{- 1}\begin{pmatrix}R_{0} \\G_{0} \\B_{0} \\1\end{pmatrix}}}{where}} & \text{(2a)} \\{M^{- 1} = \begin{bmatrix}n_{XR} & n_{XG} & n_{XB} & u_{X} \\n_{YR} & n_{YG} & n_{YB} & u_{Y} \\n_{ZR} & n_{ZG} & n_{ZB} & u_{Z} \\0 & 0 & 0 & 1\end{bmatrix}} & \text{(2b)}\end{matrix}$A 16 bit definition of RGB components is given by: $\begin{matrix}{\begin{bmatrix}R_{16} \\G_{16} \\B_{16}\end{bmatrix} = {8192 \times \begin{bmatrix}R_{0} \\G_{0} \\B_{0}\end{bmatrix}}} & \text{(2c)}\end{matrix}$In equation (2c), no gamma corrections are required since a sufficientnumber of bits are available to describe the color data (here, 16 bits).

It is desirable for XsRGB to have a simple transform to sRGB in D65. D50and D65 are the standard illuminans (the spectrum distributions of thelight source) defined by CIE. D50 and D65 are the spectrum distributionssimilar to the Black Body radiation of 5000 and 6500 Kelvin,respectively. Indeed, it is desirable for XsRGB to be identical to sRGBwhen its value is inside the range of sRGB. From the sRGB specification,the coefficients of Eq. (1b) and Eq. (2b) are determined as:$\begin{matrix}{{M_{D65} = \begin{bmatrix}3.2410 & {- 1.5374} & {- 0.4986`} & 0 \\{- 0.9692} & 1.8760 & 0.0416 & 0 \\0.0556 & {- 0.2040} & 1.0570 & 0 \\0 & 0 & 0 & 1\end{bmatrix}}{and}} & \text{(3a)} \\{M_{D65}^{- 1} = \begin{bmatrix}0.4124 & 0.3576 & 0.1805 & 0 \\0.2126 & 0.7152 & 0.0722 & 0 \\0.0193 & 0.1192 & 0.9505 & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \text{(3b)}\end{matrix}$The white point of D65 is (x_(D65), y_(D65))=(0.3127, 0.3291); thecorresponding CIE XYZ values are $\begin{matrix}\left\{ \begin{matrix}{X_{D65} = {{x_{D65}/y_{D65}} = 0.9502}} \\{Y_{D65} = 1.0} \\{Z_{D65} = {{\left( {1.0 - x_{D65} - y_{D65}} \right)/y_{D65}} = 1.0887}}\end{matrix} \right. & (4)\end{matrix}$Note that the Y-value at the white point is 1. When the device has thedifferent white point (X_(w), Y_(w), Z_(w)), the CIE XYZ coordinates forthe appearance match must be transformed by the scaling matrix.$\begin{matrix}{S_{w} = \begin{bmatrix}{X_{D65}/X_{w}} & 0 & 0 & 0 \\0 & 1 & 0 & 0 \\0 & 0 & {Z_{D65}/Z_{w}} & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \text{(5a)}\end{matrix}$and its inverse is $\begin{matrix}{S_{w}^{- 1} = \begin{bmatrix}{X_{w}/X_{D65}} & 0 & 0 & 0 \\0 & 1 & 0 & 0 \\0 & 0 & {Z_{w}/Z_{D65}} & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \text{(5b)}\end{matrix}$The transformation matrix from XYZ to XsRGB at this white point is givenbyM_(w)=M_(D65)S_(w)  (6a)and its transverse matrix is given byM_(w) ⁻¹=S_(w) ⁻¹M_(D65) ⁻¹  (6b)For an example, the white point of D50 is (x_(D50),y_(D50))=(0.3457,0.3585). The corresponding CIE XYZ value is(X_(D50),Y_(D50),Z_(D50))=(0.9643,1,0.8251). Hence the scaling matricesare $\begin{matrix}{{S_{D50} = \begin{bmatrix}0.9854 & 0 & 0 & 0 \\0 & 1.0 & 0 & 0 \\0 & 0 & 1.3195 & 0 \\0 & 0 & 0 & 1\end{bmatrix}}{and}} & \text{(7a)} \\{S_{D50}^{- 1} = \begin{bmatrix}1.0148 & 0 & 0 & 0 \\0 & 1.0 & 0 & 0 \\0 & 0 & 0.7579 & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \text{(7b)}\end{matrix}$The resultant transformation matrices for D50 are: $\begin{matrix}{{M_{D50} = \begin{bmatrix}3.1937 & {- 1.5374} & {- 0.6579} & 0 \\{- 0.9550} & 1.8760 & 0.0549 & 0 \\0.0548 & {- 0.2040} & 1.3947 & 0 \\0 & 0 & 0 & 1\end{bmatrix}}{and}} & \text{(8a)} \\{M_{D50}^{- 1} = \begin{bmatrix}0.4185 & 0.3629 & 0.1832 & 0 \\0.2126 & 0.7152 & 0.0722 & 0 \\0.0146 & 0.0903 & 0.7204 & 0 \\0 & 0 & 0 & 1\end{bmatrix}} & \text{(8b)}\end{matrix}$

The appearance match is obtained if the XsRGB values are calculated fromthe conversion matrix of the device white point. The absolute match maybe obtained if the conversion matrix of D65 is used irrespective of thedevice white point.

Let (R_(w), G_(w), B_(w)) denote the normalized RGB value obtained withthe matrix M_(w) defined in Eq. (6a) for the specific white point. The(R_(w), G_(w), B_(w)) value is used to do the appearance match and iscalled the appearance RGB value. When the absolute match is needed, theRGB values (R₀, G₀, B₀) are used by using the matrix M_(D65) defined inEq. (3a), which is called the absolute RGB value. The absolute RGB valueis obtained from the appearance RGB value by the following equation:$\begin{matrix}{\begin{pmatrix}R_{0} \\G_{0} \\B_{0} \\1\end{pmatrix} = {M_{D65}S_{w}^{- 1}{M_{D65}^{- 1}\begin{pmatrix}R_{w} \\G_{w} \\Z_{w} \\1\end{pmatrix}}}} & \text{(9a)}\end{matrix}$

The reverse relation is obtained as: $\begin{matrix}{\begin{pmatrix}R_{w} \\G_{w} \\B_{w} \\1\end{pmatrix} = {M_{D65}S_{w}{M_{D65}^{- 1}\begin{pmatrix}R_{0} \\G_{0} \\Z_{0} \\1\end{pmatrix}}}} & \text{(9b)}\end{matrix}$

Since the XsRGB space is directly linked to CIE XYZ space, it ispossible to produce the XsRGB measuring device. The new XsRGB device maybe produced by adding the matrix conversion routines to the existingcolorimeters. XsRGB values may be measured directly from the device. Thedevice may produce the appearance RGB values and the absolute RGBvalues.

The default XsRGB space is the case of D65 that is linked to sRGB. Sincethere is no translational part, Eq. (1a) with M=M_(D65) can be writtenwith a 3×3 matrix as: $\begin{matrix}{\begin{pmatrix}R_{0} \\G_{0} \\B_{0}\end{pmatrix} = {\begin{bmatrix}3.2410 & {- 1.5374} & {- 0.4986} \\{- 0.9692} & 1.8760 & 0.0416 \\0.0556 & {- 0.2040} & 1.0570\end{bmatrix}\begin{pmatrix}X \\Y \\Z\end{pmatrix}}} & (10)\end{matrix}$

Allowing each component to go from −4 to 4 by X, Y, Z values, wherein X,Y, and Z denote 1931 CIE XYZ values wherein Y has been normalized to 1instead of 100, covers a range larger than the range covered by XYZ. Theequation (10) provides one embodiment of a floating point format forXsRGB. When the 16 bit version of XsRGB is utilized, a signed 16 bitinteger is used and 8192 (=2¹³) is interpreted as 1 in the normalizedvalue. Hence, the lowest 13 bits are used for the decimal portion.

Conversion from 16 bit color data for the XsRGB format to an 8 bit sRGBformat is as follows: Let C₁₆ and C₈ denote one of the components in 16bit XsRGB format and 8 bit sRGB format, respectively. The relationshipsare:

 C ₀ ≡C ₁₆/8192 (Corresponding to the normalized linear XsRGB)C₈=0 for C₁₆<0C ₈=12.92×C ₀×255 for 0≦C ₀<0.00304 (0≦C ₁₆≦24)C ₈=(1.055×C ₀ ^((1.0/2.4))−0.055)×255 for 0.00304≦C ₀<1 (25≦C ₁₆<8192)C₈=255 for C₀≧1 (C₁₆≧8192)  (11)

The above conversions correspond to clipping below 0 and above 8192 ofthe 16 bit XsRGB when converting to 8 bit sRGB. The clipping routine maybe further modified as desired.

The reverse relationships are:C ₁₆=2.4865×C ₈ for 0≦C ₈≦10C ₁₆=8.192×[(C ₈+14.025)/269.025]^(2.4) for 11≦C ₈≦255.  (12)

The extension of sRGB in accordance with the present invention providesa number of advantages. For example, blending operations with an alphachannel may be directly applied to XsRGB since XsRGB is linear. TheXsRGB profiles may easily be obtained from the CIE XYZ profiles. WhenXsRGB is used for color reference, there is no need to rotate colorcomponents to display each component in an 8 bit sRGB device. Only gammacorrection described in (Eq. 12) above need be used to convert to 8 bitsRGB. Even without an exact calibration, XsRGB yields satisfactoryconversion for output for color monitors. The scanned images maygenerally be stored in XsRGB format without losing bit depths since mostscanners produce data in not more than 12 bits in each color component.

FIG. 4 is a block diagram of one embodiment of an apparatus in adigitized image processing system for converting color images inaccordance with the present invention. In the digitized image processingsystem 402, an image digitizer 404 that utilizes color image informationto output digital signals representing a color image to the apparatus406 that converts the digital signals to a high quality error-freeexpanded colorspace color image. The apparatus 406 includes: an expandedcolorspace mapper 408, for mapping the digital signals to expandedcolorspace values wherein the expanded colorspace values include valuesbeyond a visible range of color values; and an image labeller 410,coupled to the expanded colorspace mapper 408, for labeling an imagedetermined by expanded colorspace values as an expanded colorspaceimage. The expanded colorspace may include a colorspace defined by achromaticity diagram that extends into negative component values andbeyond 1.0 when normalized to 1.0 in sRGB. The expanded colorspacemapper may utilize multiplication of R₀, G₀, B₀ values by apredetermined matrix to map the color values to an expanded colorspace.The R₀, G₀, B₀ values may be obtained using equation (9). Where desired,the color data values and their bit components, clipping, transparencyinformation storage and premultiplication and normalization of colordata values may be as described for the methods above.

Color operations defined in the RGB/ARGB colorspace may be extended tothe expanded RGB/ARGB colorspace. Three examples of color operations inthe expanded RGB/ARGB colorspace include:

-   1. Interpolation between two RGB colors X=(R_(x), G_(x), B_(x)) and    Y=(R_(y), G_(y), B_(y)). The RGB color Z=(R_(z), G_(z), B_(z)) that    is linearly interpolated between X and Y is given by:    R _(z)=(1−d)R _(x) +dR _(y)    G _(z)=(1−d)G _(x) +dG _(y)    B _(z)=(1−d)B _(x) +dB _(y)    where d is the normalized distance of Z from X to Y, and d=0 at X    and d=1 at Y.-   2. Digital image composition operations that combine two    non-premultiplied RGBA colors. For example, one of the operations, X    over Y, where X=(A_(x), R_(x), G_(x), B_(x)) and Y=(A_(y), R_(y),    G_(y), B_(y)), produces color Z=(A_(z), R_(z), G_(z), B_(z)). The    formula is given by:    R _(z) =A _(x) R _(x)+(1−A _(x))R _(y)    G _(z) =A _(x) G _(x)+(1−A _(x))G _(y)    B _(z) =A _(x) B _(x)+(1−A _(x))B _(y)    A _(z) =A _(x) A _(x)+(1−A _(x))A _(y)    Note that this formula does not allow associativity for the order of    the operations contrast to the premultiplied ARGB case discussed    below.-   3. Image convolution operations: For example, a blur filter matrix M    is given by: $\begin{bmatrix}    {1/16} & {1/8} & {1/16} \\    {1/8} & {1/4} & {1/8} \\    {1/16} & {1/8} & {1/16}    \end{bmatrix}\quad$    The blur equation is for each color component. Assuming a RGB color    component of a pixel at location (i,j) is C(i,j), the resulting RGB    color component of the pixel after the blur operation is given by:    ( 1/16)C(i−1, j−1)+(⅛)C(i−1, j)+    ( 1/16)C(i−1, j+1)+(⅛)C(i,j−1)+    (¼)C(i,j)+(1/8)C(i,j+1)+( 1/16)C    (i+1,j−1)+(⅛)C(i+1,j)+( 1/16)C(i+1, j+1)    Besides these examples, the illumination and shading used in 3D    graphics can be applied XsARGB space.

With reference to FIG. 5, an exemplary system for implementing theinvention includes a general purpose computing device in the form of aconventional personal computer 520, including a processingunit/processor 521, a system memory 522, and a system bus 523 thatcouples various system components including the system memory to theprocessing unit/processor 521. The system bus 523 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. The system memory includes read only memory (ROM) 524 andrandom access memory (RAM) 525. A basic input/output system 526 (BIOS),containing the basic routines that helps to transfer information betweenelements within the personal computer 520, such as during start-up, isstored in ROM 524. The personal computer 520 further includes a harddisk drive 527 for reading from and writing to a hard disk, not shown, amagnetic disk drive 528 for reading from or writing to a removablemagnetic disk 529, and an optical disk drive 530 for reading from orwriting to a removable optical disk 531 such as a CD ROM or otheroptical media. The hard disk drive 527, magnetic disk drive 528, andoptical disk drive 530 are connected to the system bus 523 by a harddisk drive interface 532, a magnetic disk drive interface 533, and anoptical drive interface 534, respectively. The drives and theirassociated computer-readable media provide nonvolatile storage ofcomputer readable instructions, data structures, program modules andother data for the personal computer 520. Although the exemplaryenvironment described herein employs a hard disk, a removable magneticdisk 529 and a removable optical disk 531, it should be appreciated bythose skilled in the art that other types of computer readable mediawhich can store data that is accessible by a computer, such as magneticcassettes, flash memory cards, digital video disks, Bernoullicartridges, random access memories (RAMs), read only memories (ROMs),and the like, may also be used in the exemplary operating environment.

A number of program modules may be stored on the hard disk, magneticdisk 529, optical disk 531, ROM 524, or RAM 525, including an operatingsystem 535, one or more application programs 536, other program modules537 and program data 538. A user may enter commands and information intothe personal computer 520 through input devices such as a keyboard 540and pointing device 542. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner or the like.These and other input devices are often connected to the processing unit521 through a serial port interface 546 that is coupled to the systembus, but may be connected by other interfaces, such as a parallel port,game port or a universal serial bus (USB). A monitor 547 or other typeof display device is also connected to the system bus 523 via aninterface, such as a video adapter 548. In addition to the monitor,personal computers typically include other peripheral output devices(not shown) such as speakers and printers.

The personal computer 520 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 549. The remote computer 549 may be another personal computer,a server, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to the personal computer 520, although only a memory storagedevice 550 has been illustrated in FIG. 5. The logical connectionsdepicted in FIG. 5 include a local area network (LAN) 551 and a widearea network (WAN) 552. Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the personal computer 520 isconnected to the local network 551 through a network interface oradapter 553. When used in a WAN networking environment, the personalcomputer 520 typically includes a modem 554 or other means forestablishing communications over the wide are network 552, such as theInternet. The modem 554, which may be internal or external, is connectedto the system bus 523 via the serial port interface 546. In a networkedenvironment program modules depicted relative to the personal computer520, or portions thereof, may be stored in the remote memory storagedevice. It will be appreciated that the network connections shown areexemplary and other means of establishing communications between thecomputers may be used.

According to one embodiment of the invention, an alpha channel is usedto convey transparency information about a color and is referred to as“XsARGB”. For XsARGB, an additional 16 bit component is used to storetransparency information. First, a normalized alpha channel A₀ will beintroduced. The values 0 and 1 of A₀ are regarded as transparent andopaque, respectively. The four components (A₀, R₀, G₀, B₀) constitutesone color value. If each component is multiplied by 8192 we obtain theXsARGB component (A₁₆, R₁₆, G₁₆, B₁₆). This component is called thenon-premultiplied XsARGB and (A₀, R₀, G₀, B₀) is called the normalizednon-premultiplied XsARGB. The discussion of premultiplied colors willnow be discussed.

When an image B is laid on top of an image A, the resultant image P hasthe pixel valuep=βb+(1−β)a,  (14)where a and b are a color component of the images A and B at a certainpixel and β is the alpha channel of the image B at that pixel. An imageC can be laid on top of the image P to create another image. We want tocreate the overlay formula so that the final result does not depend onthe order (associativity).C⊕(B⊕A)=(C⊕B)⊕A.  (15)

Let D denote the image created by C and B and one of its colorcomponents and alpha value d and δ, respectively. The equation (9) foreach color component can be written asγc+(1−γ)[βb+(1−β)a]=δd+(1−δ)a,  (16)where c and γ are one of color components and alpha value of the image Cat the pixel of interest. Comparing the coefficients of a, the alphavalue of the composited image D must beδ=β+γ−γβ.  (17)

Comparing the rest of the equation (16), the value of the colorcomponent, d, multiplied by its alpha value, δ, are given byδd=γc+(1−γ)βb.  (18)

Notice that in equation (18) the color components are always multipliedby their alpha values. Hence, it is efficient to work with colorcomponents that are already multiplied by their alpha values. Thosecolors are called premultiplied colors.

When blending operations are processed, it is more efficient to use RGBvalues which are multiplied by the alpha value. The four components (A₀,R′₀, G′₀, B′₀) where R′₀=A₀R₀, G′₀=A₀G₀, and B′₀=A₀B₀, are callednormalized premultiplied XsRGB. By multiplying each component by 8192,the XsARGB component (A₁₆, R′₁₆, G′₁₆, B′₁₆) is obtained. This componentis called the premultiplied XsARGB.

According to one embodiment of the invention, the alpha value A₀ isallowed to go above 1 and below zero. The meaning of the alpha value canbe considered in the following way. When a source image, S, is overlaidto the destination image, D the resultant image, D′ is obtained, asd′=αs+(1−α)d  (19)where s, d, and d′ are one of the normalized color components of theimage S, D, and D′ at the corresponding pixels, respectively, and a isthe alpha value of the source image S at the considering pixel. Whenα=0, the resultant image remains the same as the destination image. Thiscase is called transparent. When α=1, the resultant image is the same asthe source image. This case is called opaque. When α is between 0 and 1,the resultant image is the mixed image between the source anddestination images. Usually α is a translucency parameter rangingbetween transparent (=0) to opaque (=1). However, if equation (12) isstudied, it will be noticed that equation (12) is nothing but aninterpolation equation. Hence, when α<0 or α>1, equation (12) is verywell defined and it is extrapolating the source and destination images.FIG. 6 shows the alpha value as an interpolation/extrapolationparameter. The invention allows α to be smaller than 0 or larger than 1,wherein α< is called “super transparent” and α>1 is called “superopaque.”

When a XsRGB (16 bit each component) color is put into a memory, bits0-15 are the blue component, bits 16-31 are the green component, andbits 32-47 are the red component as illustrated in FIG. 7. Eachcomponent is a signed 16 bit integer. The value 8192 is interpreted as1.0. When it is saved into a file, Intel's Little Endian convention putthe first two bytes for the blue component, the next two bytes for thegreen component, and the subsequent two bytes for the red component.This color format is called RGB48.

Either premultiplied or non-premultiplied, the data structure of XsARGB(16 bit each component) remains the same. When a XsARGB (16 bit eachcomponent) color is put into a memory, bits 0-15 are the blue component,bits 16-31 are the green component, bits 32-47 are the red component,and bits 48-63 are the alpha component as illustrated in FIG. 8. Eachcomponent is a signed 16 bit integer. The value 8192 is interpreted as1.0. When it is saved into a file, Intel's Little Endian convention putthe first two bytes for the blue component, the next two bytes for thegreen component, and the subsequent two bytes for the red component, andthe last two bytes for the alpha component. This color format is calledARGB64.

When the data is stored linearly, even the 16 bit scale may not besufficient to store the detailed shades. When more details are requiredfor the certain range of each component, a special range can be assignedin each component. When each component is normalized, the format canallow each component to vary from −4 to +4. However, most values liewithin 0 to 1. Special ranges can be assigned in −4 to +3, −3 to −2, 2to 3, and 3 to 4 to have different scales from the default XsRGB andXsARGB. A user can specify those ranges and define it in the imageheader. Hence XsRGB and XsARGB can contain multi-color resolution data.

The variation of color format for lower bit depths can be defined. Thepossible formats are as follows:

-   32 bit XsRGB—10 bit in each component (8 bit decimal field) and 2    bit extra.-   36 bit XsRGB—12 bit each component (10 bit decimal field).-   40 bit XsRGB—13 bit each component (11 bit decimal field) and 1 bit    extra.-   40 bit XsARGB—10 bit each component (8 bit decimal field).-   48 bit XsARGB—12 bit each component (10 bit decimal field).

As illustrated in FIG. 9, the data structure for storing imageinformation for each color component of the image is divided intoseveral fields. The first field is a one bit sign field 901 for definingwhether an integer value representing the bound of colorspace ispositive or negative. The second field is the integer field 903. Theinteger field defines the value of the bounds of the colorspace. Theinteger field comprises at least one bit. If the integer field comprisesone bit, the integer can be equal to one of two integer values. If theinteger field comprises two bits, the integer can be equal to one offour possible integer values. The third field is a decimal field 905which defines color data information regarding the color value of thecomponent. The more bits that the decimal field contains, the greaterthe number of color values the component can be assigned. For example,if the decimal field comprises 9 bits, the color values can range from 0to 511, and if the decimal field comprises 10 bits, the color values canrange between 0 and 1023. Thus, there is a tradeoff between how manybits to allot to the integer field and the decimal field.

In addition to the higher accuracies, RGB48 and ARGB64 have the extraranges below 0 and beyond 1 (in terms of the normalized values). Thisgives significant advantages in images filtering. For example, suppose aseries of filters, ƒ₁, ƒ₂, . . . , ƒ_(n) is applied. In each filter, thecomponent value may go below 0 or go above 1. If the color value istruncated in each filter, the correct result may not be obtained in theend. For an example, $\begin{matrix}\left\{ \begin{matrix}{{f_{1}(x)} = {x - 0.5}} \\{{f_{2}(x)} = {x + 0.5}}\end{matrix} \right. & (20)\end{matrix}$The correct result of ƒ₂∘ƒ₁(x)≡ƒ₂(ƒ₁(x)) should be x itself. However, ƒ₁is truncated between 0 and 1, the result of ƒ₂∘ƒ₁(x) becomes 0.5 for allx<0.5.

The existing image format forces the resultant image to be clipped ineach filter. Hence, the final result is likely to be incorrect. Thiswill cause artifacts to appear in the image. With the excess range inthe color space of the invention, the intermediate results are notclipped. Only the final result is clipped to the range of the outputdevice. To further illustrate this point, FIG. 10(a) illustrates thecolor data for a red component which has a peak value of 200. If the redcomponent is shifted by some operation by 120, some of the color datawill be greater than 255. The color data which has a value greater than255 is clipped to equal 255 as illustrated in FIG. 10(b). If the redcomponent is then shifted back to its original position, the peak valuesof the red component are now only equal to 135 as illustrated in FIG.10(c). However, according to one embodiment of the invention, where thecolor space is not limited to 0 to 255, the color data greater than 255is not lost or clipped when the red component is shifted by 120 asillustrated in FIG. 10(d). Since the peak values are not lost using theinvention, when the red component is shifted back, all of the originalinformation still remains as illustrated in FIG. 10(e).

Another clipping example is cubic interpolation. It simulates the syncfunction and the interpolated value can be negative. The RGB48 andARGB64 formats can store those negative values without clipping.

In general, the intermediate space is made as large as possible up tocomplex numbers. Quantum mechanics uses complex numbers to calculate thewave function. However, the final observable result is expressed as theabsolute value of the wave function as the probability. Unless thecomplex numbers are kept in the intermediate state, the correct resultscannot be obtained. The RGB48 and ARGB64 formats are aimed at thisdirection so that the intermediate states can have very wide range. Thegeneral Fourier transform produces the complex numbers. However, cosineor sine transforms are usually used to produce the real numbers. TheRGB48 or ARGB64 format can be used to store the convoluted coefficientsof sine or cosine transform which require the signed numbers.

In general, n-dimensional variables ξ₁, ξ₂, . . . , ξ_(n) can be storedin the consecutive slots in the RGB48 and ARGB64. Then, the generaltransform for each variable can be applied.F(ω₁, . . . , ω_(n))=∫dξ ₁ . . . ∫dξ _(n) g(ω₁, . . . ω_(n);ξ₁, . . . ,ξ_(n))ƒ(ξ₁, . . . , ξ_(n))  (21a)

If there are inverse transforms, the inverse transformation can bewritten byF(ξ₁, . . . , ξ_(n))=∫dω ₁ ∫dω _(n) G(ξ_(n);ω₁, . . . , ω_(n))F(ω₁, . .. , ω_(n))  (21b)

In both cases, the integral can be replaced with the summation, Σ, ifthe considering variable is discrete. The examples of those transformsare Fourier transform, (discrete) Cosine and Sine transforms, Laplacetransforms, etc. In addition, box filters and other filters can also beused.

When the variable is a complex number, it can be saved in twocomponents, one for the real part and the other for the imaginary part.The above equations can be used for the complex number and saved in theRGB48 and ARGB64 formats as well as in their variation forms.

JPEG compression uses DCT (Discrete Cosine Transform), quantization, andHuffman encoding. In the lossy mode, either DCT or quatization is used.Since all of the above algorithms are well defined in negative numbers,JPEG compression algorithms can be used to compress RGB48 and ARGB64images. Since those image formats are not defined in JPEG itself, theencoder and decoder need to be modified to be able to handle them.

Although the invention has been described in connection with thepreferred embodiments, it will be understood by those skilled in the artthat many modifications can be made thereto within the scope of theclaims which follow. Accordingly, it is not intended that the scope ofthe invention be limited by the above description, but that it bedetermined by reference to the claims that follow.

1. A computer-readable medium having stored thereon a data structure forstoring image information for each component of an image, said datastructure comprising: a sign field for defining whether an integer ispositive or negative; an integer field for defining said integer,wherein said integer defines a super or under saturated value for thecomponents; a decimal field for defining fine detail information of thecolor components.
 2. The data structure according to claim 1, whereinthe integer field comprises one bit for defining two integer values. 3.The data structure according to claim 2, wherein said two integer valuesare 0 and
 1. 4. The data structure according to claim 1, wherein theinteger field comprise two bits for defining four integer values.
 5. Thedata structure according to claim 1, wherein the data structure is usedto store images which are 32 bit XsRGB formatted.
 6. The data structureaccording to claim 1, wherein the data structure is used to store imageswhich are 36 bit XsRGB formatted.
 7. The data structure according toclaim 1, wherein the data structure is used to store images which are 40bit XsRGB formatted.
 8. The data structure according to claim 1, whereinsaid decimal field comprises 9 bits and said fine detailed informationhas 512 levels.
 9. The data structure according to claim 1, wherein saiddecimal field comprises 10 bits and said fine detailed information has1024 levels.
 10. The data structure according to claim 1, wherein saiddecimal field comprises 11 bits and said fine detailed information has2048 levels.
 11. A computer readable medium having stored thereon a datastructure for storing image information for each component of an image,said data structure comprising: a sign field for defining whether aninteger is negative or positive; an integer field for defining saidinteger, wherein said integer defines a super or under saturated valuefor the color and alpha components; a decimal field for defining finedetailed information of the color and alpha components.
 12. The datastructure according to claim 11, wherein the integer field comprises onebit for defining two integer values.
 13. The data structure according toclaim 12, wherein said two integer values are 0 and
 1. 14. The datastructure according to claim 11, wherein the integer field comprise twobits for defining four integer values.
 15. The data structure accordingto claim 11, wherein the data structure is used to store images whichare 40 bit XsARGB formatted.
 16. The data structure according to claim11, wherein the data structure is used to store images which are 48 bitXsARGB formatted.
 17. The data structure according to claim 11, whereinsaid decimal field comprises 9 bits and said fine detailed informationhas 512 levels.
 18. The data structure according to claim 11, whereinsaid decimal field comprises 10 bits and said fine detailed informationhas 1024 levels.